# -*- coding: utf-8 -*-
# 操作内容：
# @Software: PyCharm
# @File: dbutil.py
# @Author: 一碗好酒（张智）
# @E-mail: 1473658931@qq.com, 
# @Time: 7月 14, 2021
# ---
#pip install pymysql
import pymysql

from common.file_load import read_yaml


class DB:
    def __init__(self,db_env):
        #调用yml文件的方法，读取对应的配置文件
        self.dbinfo = read_yaml('/config/db.yml')[db_env]
        print(self.dbinfo)
        # 链接数据库
        self.db = pymysql.connect(
            host=self.dbinfo['host'],
            port=self.dbinfo['port'],
            user=self.dbinfo['user'],
            password=self.dbinfo['pwd'],
            charset='utf8mb4',
            #返回数据类型-字典
            cursorclass=pymysql.cursors.DictCursor
        )
    #查询 返回数据
    def select(self,sql):
        '''

        :param sql: 原生sql语句
        :return:
        '''
        # 创建游标
        cursor = self.db.cursor()
        cursor.execute(sql)
        data = cursor.fetchall() # 获取所有查询到的数据
        self.db.commit()  # 不提交的话，一次或者多次查询可能会有问题
        cursor.close()
        return data
    #增加 ，删除， 修改
    def update(self,sql):
        '''

        :param sql: 修改删除，增加语句。
        :return:
        '''
        cursor = self.db.cursor()
        cursor.execute(sql)
        self.db.commit()  # 更新语句一定要提交。
        cursor.close()

    def close(self):
        '''
        对数据库进行关闭
        :return:
        '''
        if self.db != None:
            self.db.close()

if __name__ == '__main__':
    db = DB('test')
    sql = 'SELECT * FROM mtxshop_trade.es_order where trade_sn="20210711000005";'
    data = db.select(sql)
    print(data)